﻿using System.Collections.Generic;
using System.Linq;
using System.Text;
using Castle.ActiveRecord;
using Castle.Components.Validator;

namespace SGP.Model
{
    /// <summary>
    /// Classe Patrimonio
    /// </summary>
    [ActiveRecord(Table = "pat_patrimonio",Lazy = true)]
    public partial class Patrimonio :  ActiveRecordBase<Patrimonio>
    {
        private int _patIdPatrimonio;

        /// <summary>
        /// Codigo do patrimonio
        /// </summary>
        [PrimaryKey(PrimaryKeyType.Identity, "pat_id_patrimonio")]
        public virtual int PatIdPatrimonio { get { return this._patIdPatrimonio; } }

        /// <summary>
        /// Preco de venda do patrimonio
        /// </summary>
        [Property("pat_preco_atual"),ValidateNonEmpty("Preço atual não pode ser branco."),
        ValidateDecimal("Preço não está no formato adequado.") ]
        public virtual decimal PatPrecoAtual { get; set; }

        [Property("pat_nm_patrimonio"), ValidateNonEmpty("Nome do patrimônio não pode ser branco")]
        public virtual string PatNmPatrimonio { get; set; }

        [OneToOne(Cascade = CascadeEnum.All)]
        public virtual PatrimonioDet PatrimonioDet { get; set; }

        //[HasAndBelongsToMany(typeof(Pessoa), Table = "ppt_pessoa_patrimonio",
        //    ColumnKey = "pat_id_pessoa", ColumnRef = "pes_id_patrimonio",
        //    Inverse = true, Lazy = true, Cascade = ManyRelationCascadeEnum.SaveUpdate)]
        //public virtual IList<Pessoa> Pessoas { get; set; }
    }
}
